As will be explained further herein below, there exists a variety of modes of operation for a set of replicated hosts in a networked cluster environment. Due to hardware compatibility problems associated with multicast modes of operation, unicast cluster mode has been generally favored in clustered host installations running MICROSOFT's network load balancing (NLB) software. When such installations operate in the unicast cluster mode, the physical address of a network interface card for each member of the cluster is a shared (same) media access control (MAC) address. Sending a packet from one cluster member to another is generally not possible because (1) the physical source and destinations match the configured MAC address on the NIC (and thus will not be sent) and (2) even if the NIC passed the packet onto the wire, the physical identity of the sender (from the point of view of the physical address) is lost because the recipient NICs cannot differentiate between individual members of the cluster based upon the source MAC address (which is the shared cluster address).
Clusters, and in particular ones comprising a set of hosts running MICROSOFT's network load balancing (NLB) software, are generally operated in a unicast mode, multicast or Internet Group Multicast Protocol (IGMP) mode. The NLB load-balancing algorithm implemented in MICROSOFT's NLB software fundamentally requires that, regardless of the mode of operation, each host receives each inbound packet. The primary objective of the three modes of operation is therefore to ensure that inbound traffic destined for the cluster is received by all members of the cluster. Sometimes this requirement precludes hosts in the cluster from directly communicating with each other.
In unicast cluster mode, each host in the NLB cluster shares a common physical network (e.g., MAC) address referred to herein as a cluster address. This prohibits hosts within the cluster from communicating with each other through non-broadcast messages. This limitation arises because each host shares the same physical MAC address, which prevents TCP/IP layers within the hosts from distinguishing hosts (and their associated messages) using the physical MAC addresses.
In multicast mode, each host in an NLB cluster retains its unique physical network address but shares a common multicast MAC address called the cluster MAC address. All inbound packets are addressed to the shared multicast cluster MAC address which, in and of itself, ensures that they are “flooded” by the switch to all members of the cluster (switches inherently flood multicast and broadcast traffic to all switch ports). Furthermore, in multicast mode, unlike in unicast mode, because each host retains a unique MAC address, hosts are able to communicate amongst themselves freely. Thus, multicast mode would appear to be a preferable mode of operation in an NLB cluster where point-to-point intracluster communications support is desired. The multicast mode, however, does not work seamlessly with all routers and switches. With regard to mapping logical (e.g., IP) addresses to physical (e.g., MAC) addresses, a task associated with the well known Address Resolution Protocol (ARP), some routers and switches reject the ARP mapping of a unicast IP address to a multicast MAC address. Most routers will allow a static ARP entry of this nature to be configured, which solves the issue at hand, but necessitates manual network configuration. It is further noted that such hurdles to logical/physical address matching are likely to be encountered in other physical address discovery/matching protocols such as Neighbor Discovery associated with IP version 6.
The IGMP multicast mode is very similar to multicast mode. However, in IGMP multicast mode the multicast MAC address assigned as the cluster MAC address is an Internet Group Multicast Protocol (IGMP) address. Each NLB host within a cluster periodically sends an IGMP JOIN message to the switch to which it is connected to advertise its membership in an IGMP group. The advantage of configuring IGMP is that if the switch to which the cluster hosts are connected supports IGMP, then it will ensure that inbound packets directed to the cluster MAC address are “flooded” only on the switch ports to which cluster hosts are connected and not to all ports on the switch. The IGMP multicast mode, however, suffers from the same router and switch compatibility limitation as multicast mode.
Due to the aforementioned hardware compatibility problems associated with both multicast modes of operation, unicast mode continues to dominate the existing MICROSOFT NLB software install base. Nevertheless, circumstances arise where replicated host nodes would preferably communicate directly with each other. In cases where replicated hosts are operating in a unicast mode, such direct communication can occur if each host includes a second network card, associated with a separate communications protocol stack operating in a non-cluster mode, to which a non-cluster physical address is assigned. However, requiring a second network card to support the limited circumstances under which two replicated host nodes wish to communicate directly is generally considered both unreasonable and/or undesirable by customers.